<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" lang="zh" xml:lang="zh">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>任务描述符: 确定设计机制</title>
<meta content="TaskDescriptor" name="uma.type">
<meta content="identify_design_mechanisms" name="uma.name">
<meta content="确定设计机制" name="uma.presentationName">
<meta content="_SLk9EUocEdqrjq4i3fchvA" name="uma.guid">
<meta content="TaskDescriptor" name="element_type">
<meta content="description" name="filetype">
<meta name="role" content="软件设计人员">
<link type="text/css" href="./../../css/default.css" rel="StyleSheet">
<script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageResource.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageSubSection.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ActivityTreeTable.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ProcessElementPage.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/ContentPageToolbar.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/contentPage.js"></script><script language="JavaScript" type="text/javascript" src="./../../scripts/processElementData.js"></script><script language="JavaScript" type="text/javascript">
					var defaultQueryStr = '?proc={002674F9-6511-4D15-8623-B761D8C48986}&path={002674F9-6511-4D15-8623-B761D8C48986},{F2160C54-F666-4736-9982-FC7F58F15FAD},_SLk9EUocEdqrjq4i3fchvA';
					var backPath = './../../';
					var imgPath = './../../images/';
					var nodeInfo=[{view: "view:_e_O28N7KEdm8G6yT7-Wdqw", path: ["_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vChNQkJHEdq4z9xc-r201w", "_vChNREJHEdq4z9xc-r201w", "_UNdM0CFtEdqrX8YVzvtlIg", "_SLk9EUocEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_PEpmMCVuEdqSZ9OimJ-AzA", "_-kFhcCVuEdqSZ9OimJ-AzA", "_pV4NgSFsEdqrX8YVzvtlIg", "_UNdM0CFtEdqrX8YVzvtlIg", "_SLk9EUocEdqrjq4i3fchvA"]}, {view: "view:_FCx1oN7CEdmsEI4YDGX2ag", path: ["_FCx1oN7CEdmsEI4YDGX2ag", "_e_O28N7KEdm8G6yT7-Wdqw", "_vCtak0JHEdq4z9xc-r201w", "_vChNQkJHEdq4z9xc-r201w", "_vChNREJHEdq4z9xc-r201w", "_UNdM0CFtEdqrX8YVzvtlIg", "_SLk9EUocEdqrjq4i3fchvA"]}];
					contentPage.preload(imgPath, backPath, nodeInfo, defaultQueryStr, true, true, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td valign="top">
<div id="page-guid" value="_SLk9EUocEdqrjq4i3fchvA"></div>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td nowrap="true" class="pageTitle">任务：确定设计机制</td><td width="100%">
<div id="contentPageToolbar" align="right"></div>
</td>
</tr>
</table>
<table cellspacing="0" cellpadding="0" border="0" width="100%">
<tr>
<td class="pageTitleSeparator"><img height="1" title="" alt="" src="./../../images/shim.gif"></td>
</tr>
</table>
<div class="overview">
<table cellpadding="0" cellspacing="0" border="0" width="97%">
<tr>
<td width="50"><img title="" alt="" src="./../../images/taskdes_lg_dgm32.gif"></td><td>
<table cellpadding="0" cellspacing="0" border="0" class="overviewTable">
<tr>
<td valign="top">此任务描述了如何将分析机制优化为设计机制。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">用途</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<ul>
    <li>
        <a id="XE_class__refining_analysis_classes" name="XE_class__refining_analysis_classes"></a>基于实施环境施加的约束来将分析机制优化成设计机制。
    </li>
</ul></td>
</tr>
</table>
</div>
<div class="sectionHeading">关系</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">角色</th><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">主要:
							</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_software_architect_8B6C5D41.html" guid="_COWYtRi2Edq_uI8xTPML6g">软件设计人员</a>
</li>
</ul>
</td><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">其他:
							</span></td><td class="sectionTableCell"><span class="sectionTableCellHeading">辅助:
							</span></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">输入</th><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">必需:
								</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_analysis_class_DE193C28.html" guid="_joR0wL9dEdqBwpaAk4N49g">分析类</a>
</li>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_analysis_class_5B5A476F.html" guid="_kU-isL9dEdqBwpaAk4N49g">分析类</a>
</li>
</ul>
</td><td width="30%" class="sectionTableCell"><span class="sectionTableCellHeading">可选:
								</span>
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_supplementary_specification_4FFE3F60.html" guid="_COWYuRi2Edq_uI8xTPML6g">补充规范</a>
</li>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_software_architecture_document_7A057157.html" guid="_COWYthi2Edq_uI8xTPML6g">软件体系结构文档</a>
</li>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_design_model_84A35167.html" guid="_COWYtxi2Edq_uI8xTPML6g">设计模型</a>
</li>
</ul>
</td><td class="sectionTableCell"><span class="sectionTableCellHeading">外部:
								</span>
<ul>
<li>无</li>
</ul>
</td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">输出</th><td colspan="3" class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_software_architecture_document_7A057157.html" guid="_COWYthi2Edq_uI8xTPML6g">软件体系结构文档</a>
</li>
<li>
<a href="./../../core.base_rup/capabilitypatterns/rup_design_model_84A35167.html" guid="_COWYtxi2Edq_uI8xTPML6g">设计模型</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">步骤</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr>
<td class="sectionTableCell">
<div class="stepHeading"> 对分析机制的客户端分类</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="XE_analysis_mechanisms__categorizing" name="XE_analysis_mechanisms__categorizing"></a><a id="categorize clients" name="categorize clients"></a> 
<p>
    分析机制提供由<a class="elementLinkWithUserText" href="./../../core.base_rup/workproducts/rup_analysis_class_DAF7CE03.html" guid="{1E20603F-A5B8-42D5-BDBC-69DCE9C0FCDB}">分析类</a>使用的概念上的服务集合。它们为最终必须关心、但处于分析工作范围之外的相当复杂的行为提供方便的简单表达方式。
    它们的主要目的是允许我们捕获系统的这些尚待设计的服务的需求，而不必考虑服务提供者自身的细节。
</p>
<p>
    现在，必须开始优化在分析机制上收集的信息。执行步骤如下：
</p>
<p>
    <b>确定每个分析机制的客户端。</b> 浏览给定分析机制的所有客户端，查看它们对于该机制要求的特征。例如，许多<a class="elementLinkWithUserText" href="./../../core.base_rup/workproducts/rup_analysis_class_DAF7CE03.html" guid="{1E20603F-A5B8-42D5-BDBC-69DCE9C0FCDB}">分析类</a>会利用持久性机制，但它们对该机制的需求可能变化很大：将具有一千个持久实例的类与将具有四百万个持久实例的类的持久性需求有显著区别。类似地，其实例必须以低于一毫秒的速度响应实例数据的类与只通过特别查询和批处理报告应用程序访问其实例数据的类需要的持久性方法将是不同的。
</p>
<p>
    <b>确定每个分析机制的特征概要文件</b>。<b>特征概要文件</b>可能变化很大，提供不同等级的性能、覆盖区、安全性和经济成本等。每个分析机制都不同 －
    将有不同的特征适用于每个机制。多数机制将需要估计要管理的实例数量及其用预期字节数表示的预期大小。通过任何系统的大量数据的移动将产生必须处理的巨大性能问题。
</p>
<p>
    <b>按照客户端使用的特征概要文件，对客户端分组。</b>对客户端分组：这些客户端看来需要同一个分析机制，该机制具有相似的特征概要文件；基于每个这样的需要来确定设计机制。这些分组提供了对设计机制的初始划分。示例分析机制“进程间通信”可映射到设计机制“对象请求代理程序”。不同的特征概要文件将导致从同一个分析机制中产生不同的设计机制。分析中的简单持久性机制将产生设计中的多个持久性机制：内存中的持久性、基于文件、基于数据库和分发式等。设计机制是基于不同特征概要文件而对分析机制的优化。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 列出实施机制清单</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="XE_implementation_mechanism__inventorying" name="XE_implementation_mechanism__inventorying" class="index" key="实施机制（implementation mechanism）" text="列出清单"></a><a id="inventory impl mechanisms" name="inventory impl mechanisms"></a>
<p>
    自下而上的进行并列出要处理的实施机制清单（请参阅<a class="elementLinkWithUserText" href="./../../core.base_rup/guidances/concepts/design_and_implementation_mechanisms_A37EAC7D.html" guid="6.131233324119695E-305">概念：设计和实施机制</a>）：
</p>
<ul>
    <li>
        由中间件产品或组件框架提供的机制。
    </li>
    <li>
        由操作系统提供的机制。
    </li>
    <li>
        由组件提供的机制。
    </li>
    <li>
        由类库提供的机制。
    </li>
    <li>
        旧代码（另请参阅：<a class="elementLinkWithUserText" href="./../../core.base_rup/tasks/incorporate_design_elements_D3C582B5.html" guid="{5C647173-4E32-4594-96A9-2548B47722FA}">任务：合并现有设计元素</a>）
    </li>
    <li>
        特殊用途包：GUI 构造器、地理信息系统、DBMS 等。
    </li>
</ul>
<p>
    确定什么场合可使用现有实施机制以及什么场合需要建立新的实施机制。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 将设计机制映射到实施机制</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="XE_implementation_mechanism__mapping_from_design_mechanisms" name="XE_implementation_mechanism__mapping_from_design_mechanisms"></a><a id="XE_design_mechanism__mapping_to_implementation_mechanisms" name="XE_design_mechanism__mapping_to_implementation_mechanisms" class="index" key="设计机制（design mechanism）" text="映射到实施机制"></a><a id="Map Design Mechanisms to Implementation Mechanisms" name="Map Design Mechanisms to Implementation Mechanisms"></a>
<p>
    设计机制提供实施机制的抽象，将分析机制和实施机制之间的差距衔接起来。在设计期间抽象体系结构机制的使用可使我们考虑如何提供体系结构机制，而不会将手边的问题与特定机制的细节问题相混淆。它也可使我们可能用一个特定实施机制去替换另一个，而不会对设计有不利影响。
</p>
<p>
    <b>确定特征范围。</b> 用对设计机制确定的特征来确定用于候选实施机制的合理、经济或可行的价值范围。
</p>
<p>
    <b>考虑所购组件的购买成本</b>。 对于候选实施机制，除了纯粹的技术条件，还请考虑购买或许可成本、产品的成熟度、与供应商的关系、支持等。
</p>
<p>
    <b>搜索合适的组件，或自制组件。</b> 通常，您将会发现对于某些设计机制，不存在明显合适的实施机制；这将会引发搜索合适的产品或确定内部开发的必要性。您也可能发现某些实施机制根本不可用。<br />
    <br />
     实施机制的选择不仅基于对技术特征的良好匹配，而且基于非技术特征（如成本）。部分选择可能是<b>临时的</b>；几乎所有的选择都带有一些风险：性能、健壮性和可伸缩性几乎始终是要考虑的问题并必须通过评估、探索性地建立原型或包含在体系结构原型中来验证。
</p></td>
</tr>
</table>
</div>
<div class="stepHeading"> 记录体系结构机制</div>
<div class="stepContent">
<table cellpadding="0" cellspacing="0" border="0" class="stepTable">
<tr valign="top">
<td><a id="XE_architectural_mechanism__documenting" name="XE_architectural_mechanism__documenting" class="index" key="体系结构机制（architectural mechanism）" text="记录"></a><a id="document mechanisms" name="document mechanisms"></a> 
<p>
    在此任务中，软件设计人员的角色是通过建立或集成机制并验证它们有效，来确定和验证这些机制，然后将这些机制一致地施加到剩余的系统设计中。软件设计人员角色与流程工程师角色协作，以便在特定于项目的设计指南中记录机制和有关机制使用的详细信息。
    请参阅<img alt="" src="./../../images/no_rup.gif">&#160;<a class="elementLinkWithUserText" href="./../../pages_not_installed/pages_not_installed.html" guid="{1E706674-C1E7-4F8D-BF06-35FFE49C5E42}">任务：准备特定于项目的指南</a>。分析机制与设计机制以及实施机制之间的关系（或映射），还有这些选择的相关理由应记录在<a class="elementLinkWithUserText" href="./../../core.base_rup/workproducts/rup_software_architecture_document_C367485C.html" guid="{6F49641A-ED10-47B5-9E5D-3F90A6BF3006}">软件体系结构文档</a>中。 这些机制本身是设计模型元素（如设计包、设计类和设计子系统），作为各自设计任务的一部分在<a class="elementLinkWithUserText" href="./../../core.base_rup/workproducts/rup_design_model_2830034D.html" guid="{8CDAEAD4-5E84-4F50-87FD-3240ED047DE7}">工作产品：设计模型</a>中有详细描述。
</p><br />
 <br /></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">属性</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_多次出现" abbr="多次出现">多次出现</th><td align="left" class="sectionTableCell" headers="property_多次出现"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_事件驱动" abbr="事件驱动">事件驱动</th><td align="left" class="sectionTableCell" headers="property_事件驱动"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_正在进行" abbr="正在进行">正在进行</th><td align="left" class="sectionTableCell" headers="property_正在进行"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_可选" abbr="可选">可选</th><td align="left" class="sectionTableCell" headers="property_可选"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_已计划" abbr="已计划">已计划</th><td align="left" class="sectionTableCell" headers="property_已计划"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading" id="property_可重复" abbr="可重复">可重复</th><td align="left" class="sectionTableCell" headers="property_可重复"><img title="" alt="" height="15" width="20" src="./../../images/indent.gif"></td>
</tr>
</table>
</div>
<div class="sectionHeading">更多信息</div>
<div class="sectionContent">
<table cellpadding="0" cellspacing="0" border="0" class="sectionTable">
<tr valign="top">
<th scope="row" class="sectionTableHeading">概念</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/guidances/concepts/analysis_mechanisms_36135B43.html" guid="9.76539014099254E-305">分析机制</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/concepts/design_and_implementation_mechanisms_A37EAC7D.html" guid="6.131233324119695E-305">设计和实施机制</a>
</li>
</ul>
</td>
</tr>
<tr valign="top">
<th scope="row" class="sectionTableHeading">工具向导</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../core.base_rup/guidances/toolmentors/manage_design_model_1D45D75E.html" guid="{BD1DD906-031C-4D8C-8078-87B6869A8C14}">使用 Rational Rose 管理设计模型</a>
</li>
<li>
<a href="./../../core.base_rup/guidances/toolmentors/identifying_design_mechanisms_876B13E5.html" guid="{08A426C6-B757-481D-9531-637BC8C7A786}">使用 Rational XDE Developer 确定设计机制</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<table cellpadding="0" cellspacing="0" border="0" class="copyright">
<tr>
<td class="copyright"><p>
    &copy; &nbsp;Copyright IBM Corp.&nbsp;1987, 2006. &nbsp;All Rights Reserved.
</p></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
					contentPage.onload();
					contentPage.processPage.fixDescriptorLinks();
				</script>
</html>
